Блог им. 3Qu |Проектирование ТС. 3. Базовые принципы.

    • 28 августа 2021, 16:55
    • |
    • 3Qu
  • Еще
Собственно, все стратегии основаны на принципе: покупай дешево — продавай дорого. Вопрос только в определении понятий — дорого/дешево.
Основной принцип на графике:
Проектирование ТС. 3. Базовые принципы.
Это фьючерс Сбера, 1 м график, по х — минуты. Дешево внизу, дорого вверху. Средняя прибыль ~40 п за сделку.
Я не боюсь, что кто-то что-то украдет, в смысле идей, да, они, собственно, и без меня очевидны. Один из наших коллег на СЛ уже «украл» — работает с этим уже три или 4 года — результат околонулевой. Ну, вы наверное знаете товарисча.)
Вот с этим я сейчас и работаю. Система совершенно другая — старая почти изжила себя — на графике все можно увидеть. Раньше ходы цены были несколько другими.  Сейчас требуются другие подходы к снаряду. Сеточники — не хочу, не нравится мне это, хотя bohemian rhapsody...
Вот, пока, чего не пойму, так это стратегию Мальчика BuyBuy. Может, вообще бы все переделал, если бы понял.))
А вообще, не скрою, я сюда, на СЛ, за идеями пришел. Варясь в собственном соку новые мысли не появятся.



Блог им. 3Qu |Проектирование ТС. 2 Тестер стратегий.

    • 27 августа 2021, 22:25
    • |
    • 3Qu
  • Еще
Люди достаточно часто пишут — я бы конечно моделировал, но где взять тестер стратегии? Не на чем тестировать.
Ну, это самое простое, что может быть, я тестер пишу каждый раз заново — лень искать, быстрее написать заново. Да, и функциональность, возможно, нужна какая-то другая.
Смотрим код тестера стратегии и его вызов:
def TradeSystem(ibegin):
    ln = len(sdata)
    i = ibegin
    indata =[]
    dealdata =[]
    while i < ln:
        ls = DealIn(i)
        if ls != 0:
            j = DealControl(i, ls)
            i = j
        i += 1 
    return dealdata, indata
    
DealsData, InData = TradeSystem(100)  #вызов тестера стратегий
Рабочий код, между прочим.)
ibegin — это номер свечи на истории с которой начнет работу тестер.
sdata — история в формате [datetime, o, h, l, c, v]
indata — все параметры открытия сделок для последующего анализа.
dealdata — все необходимые для последующего анализа данные о всех сделках на истории
Дальше идет цикл while() последовательно перебирающий свечи на истории, которые анализируются функцией DealIn(i) (собственно, это и есть ваша стратегия, определяющая момент открытия сделки Лонг или шорт — ls). DealIn() при обнаружении сделки также передает данные для анализа в indata

( Читать дальше )

Блог им. 3Qu |Проектирование ТС. 1

    • 15 августа 2021, 18:09
    • |
    • 3Qu
  • Еще
Обещал в Процесс рождения интрадей Грааля пошагово освещать процесс проектирования торговой системы — освещаю).
Итак, первым делом скачал с Финам 1м котировки нескольких фьючерсов за 3 последних месяца перед экспирацией и поместил их в БД SQLite — так проще работать. Код экспорта из CSV в SQLite приводил ранее, см. раздел Python моего блога.
Вот эти:

1 GAZR-6.21 GZM1
2 GAZR-9.21 GZU1
3 SBRF-6.21 SRM1
4 SBRF-9.21 SRU1
5 Si-6.21 SiM1
6 Si-9.21 SiU1
С фьючем РТС работать и отрабатывать технологии сложнее, если и нужен будет, то оч нескоро.
У меня заготовлено несколько новых индикаторов для этой ТС. Конечно я на что-то рассчитывал при их проектировании, но все это умозрительно, и о реальных свойствах индикаторов я, ровным счетом, ничего не знаю. Для начала хотелось бы выяснить их возможности.
Для этого на множестве 1м истории (~66000 свечей) генерируем ~6600 равномерно распределенных по интервалу истории случайных сделок продолжительностью 5 минут ( потом будет и 10 и 15 минут), пока только Лонг (потом и Шорт будет, рассматривается отдельно) и находим прибыль в каждой из этих сделок.
Выглядеть это будет вот так:
Проектирование ТС. 1 



( Читать дальше )

Блог им. 3Qu |Так ли нужны ли сложные модели рынка? (с) Eugene Logunov

    • 02 августа 2021, 23:57
    • |
    • 3Qu
  • Еще
Так как только избранные могут читать этот топик, а тема интересная, придется прокомментировать заголовок.
С одной стороны, простых моделей не существует в природе, иначе при современных алгоритмах обработки информации они находились бы каждым желающим на раз-два.
Изначально, анализ временных рядов и выявление в нем каких-либо «закономерностей» является оч непростой задачей — на эту тему тома написаны и оч известными в науке людьми. С другой стороны, излишнее усложнение моделей стохастических процессов ведет к неустойчивости таких моделей.
Получается, что с одной стороны, простых моделей не существует в природе, а, с другой стороны, сложные модели существенно неустойчивы, вплоть до полной неработоспособности.
Нужно выбирать где-то посередине, но здесь нам предстоит достаточно сложная работа по выбору системы, т.к. из предыдущего следует, что без дополнительных гипотез ничего явного нам обнаружить не удастся. А гипотезы могут и не оправдаться.)

Блог им. 3Qu |Windows 10, Python, Anaconda, Miniconda (топик для питоноводов).

    • 28 июня 2021, 23:13
    • |
    • 3Qu
  • Еще
Доконал я, таки, свою Windows 10, стала еле ползать. Вначале восстановил штатной системой восстановления — не понравилось. Тогда сделал чистую установку. Вроде нормально, полетела. Поставил VS 2019, и очередь дошла до Python — что ставить?
Уже несколько лет использую Python для всех задач анализа данных и моделирования торговых систем. До того использовал разное — Excel, MathLab, SciLab, R. Python, имхо, оказался наиболее удобным и быстрым инструментом для решения всех околорыночных задач.
В свое время долго выбирал среду под Python, и, в конце концов остановился на Anaconda. Это самое оно для начинающих — все сразу сконфигурировано и готово к употреблению, уже сразу в базе ~700 пакетов, и не надо заморачиваться с их установкой. Кроме того, уже готовы к употреблению несколько сред разработки, я пользуюсь только одной — Spyder — не то, чтобы другие хуже, просто потребности не возникало.
В общем, для тех, кто только начинает работать с Python или не хочет заморачиваться с пакетами и средами, Anaconda — самое оно.
Однако, есть и недостатки. Очень большой объем на диске, долго ставится. Все 700 пакетов вам никогда не понадобятся, и по любому, позднее какие-то пакеты вам все равно придется устанавливать самостоятельно. Множество сред разработки тоже никогда не понадобятся, однако, чтобы получить общее представление о том, что есть под Python, для начальных этапов не вредно.

( Читать дальше )

Блог им. 3Qu |Связь Lua -> ваша программа. RAM Disk.

    • 11 мая 2021, 21:33
    • |
    • 3Qu
  • Еще
Я, вроде, уже писал подобный пост. Давно. Но, новое — хорошо забытое старое.
Очень многие неплохо владеют основами программирования, но написать DLL, связь через TCP или что-то другое для экспорта-импорта в Lua — это достаточно сложная процедура, и требует дополнительных знаний и много времени. Однако, если такую связь как-то по простому реализовать, то решились бы многие проблемы обмена данными с C#, Python и другими средами, и не надо вникать во всяческие C-API и прочие премудрости.
Однако, есть достаточно простой и доступный способ — обмен данными через файлы. Например, так:
1. программа Lua пишет строку (строки) данных в формате CSV в файл data.csv,
2. программа Lua создает пустой файл flag.ddd,
3. ваша программа проверяет наличие файла flag.ddd, что означает, что данные готовы к чтению,
4. при наличии файла flag.ddd программа читает данные файла data.csv и удаляет файл flag.ddd,
5. программа Lua проверяет наличие файла flag.ddd, и если этот файл отсутствует пишет строку (строки) данных в файл data.csv (см. п.1)
При обратном обмене происходит все тоже самое, только имена файлов другие.

( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Блог им. 3Qu |Календарный спред Si прямо сейчас. (дополнение к bohemian rhapsody)

    • 11 мая 2021, 16:55
    • |
    • 3Qu
  • Еще
Что нужно для игры на календарном спреде.
1. Вот такие данные:
Календарный спред Si прямо сейчас. (дополнение к bohemian rhapsody)
2. Вот такой автомат. Реализован на Lua и С++ DLL
Календарный спред Si прямо сейчас. (дополнение к bohemian rhapsody)

( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Блог им. 3Qu |Быстродействие ТС. С нетерпением жду завтра.

    • 03 мая 2021, 17:36
    • |
    • 3Qu
  • Еще
Измерил наконец скорость своей ТС. Получилось, обрабатывается 2.8 запросов в секунду. См. О быстродействии авто торговой системы.
Хотелось бы выяснить возможное быстродействие ТС под Quik. Ничего не менял, только немного перекомпоновал систему. Заодно обнаружил также несколько уже ненужных операторов, по недосмотру оставшихся в системе после ее отладки, но погоды они не сделают.
С нетерпением жду завтра, рассчитываю на повышение скорости работы ТС до 4-5 запросов в секунду.
Хотя, в общем, и 2.8 запросов в секунду вполне хватает.

Блог им. 3Qu |Мода на Машинное Обучение.

    • 12 декабря 2019, 19:33
    • |
    • 3Qu
  • Еще

К обеду астролябия была продана интеллигентному слесарю за три рубля.
— Сама меряет, — сказал молодой человек, передавая астролябию покупателю, — было бы что мерять.
(И.Ильф, Е.Петров, Двенадцать стульев.)

Машинное обучение (МО) сейчас является очень популярной темой, и им не занимается только ленивый. В наличии масса готовых к употреблению библиотек — нейросети, леса-деревья, Байесы, и пр. и пр. Осваивается все это за пару недель и применяй — не хочу. Однако, результаты такого применения в трейдинге как правило нулевые или около того. Без толку, но, хотя-бы хорошо провели время,) узнали много нового и интересного.
Отрицательные результаты объясняюся тем, что методы МО — это не более чем математическое выражение или их набор формируемый в процессе обучения. При этом МО старается как можно точнее подогнать мат. выражение(я) под ответы представленные в обучающей выборке. Т.е., в принципе, методология МО ничем не отличается от банальной подгонки решения под имеющийся ответ. В студенческие годы, если что-то не сходилось, оч помогало умножить или разделить, скажем, на корень из Пи или корень из двух. Вот, и МО делает абсолютно тоже самое. И мы занимаемся тем же самым, когда подбираем параметры индикаторов, входов, тейков и стопов для получения от стратегии максимальной прибыли, и, надо сказать, с тем-же результатом — вся эта подгонка работает только на том отрезке, где мы подобрали, и никак на реальном рынке. К чести МО отметим, что методы МО гораздо лучше и эффективней чем мы занимаются подгонкой, и на интервале обучения получат классную ТС из практически всего, что вам придет в голову. Только реально работать это не будет.(
Таким образом, для типовых методов построения торговых систем применение МО не дает и не может дать ровным счетом ничего, и применение МО в подобных системах не имеет смысла. Можно не дергаться, такие задачи МО не решает.
Ну, и выводы:
МО следует применять для задач, имеющих решения, которые можно получить подгонкой под ответ. Для решения других задач методы МО не предназначены.
Такие задачи и следует искать для применения МО при разработке ТС. И если вы их найдете, это может сэкономить вам массу времени и сил. Подобных задач, кстати, великое множество, но с этим лучше обратиться к специальной литературе.





....все тэги
UPDONW
Новый дизайн